﻿#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
////指针接收
////void Swap(int* pa, int* pb)
////{
////	int c = *pa;
////	*pa = *pb;
////	*pb = c;
////}
////int main()
////{
////	int a = 10;
////	int b = 20;
////	printf("交换前：a=%d b=%d\n", a, b);
////	Swap(&a, &b);
////	printf("交换后：a=%d b=%d\n", a, b);
////
////
////}

////数组名的两个例外
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	//sizeof(数组名)
//	printf("%zu\n", sizeof(arr));
//	printf("%zu\n", sizeof(&arr[0]));
//	//&数组名
//	printf("%p\n", arr);
//	printf("%p\n", arr+1);
//	printf("%p\n", &arr[0]);
//	printf("%p\n", &arr[0]+1);
//	printf("%p\n", &arr);
//	printf("%p\n", &arr+1);
//
//	return 0;
//}

#include <stdio.h> 
//冒泡排序
void bubble_sort(int arr[], int sz)
{
	//最多循环sz-1次
	for (int i = 0; i < sz - 1; i++)
	{
		//看看是否有序了
		int flag = 1;
		//每次两两比较，第i次最多需要比较sz-1-i次
		for (int j = 0; j < sz - 1 - i; j++)
		{
			//升序排列
			if (arr[j] > arr[j + 1])
			{
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
				//排过
				flag = 0;
			}
		}
		//没排过,还没有顺序
		if (flag == 1)
		{
			break;
		}
	}
}
int main()
{
	int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
	
	int sz = sizeof(arr) / sizeof(arr[0]);

	bubble_sort(arr, sz);
	
	return 0;
}
//#include <stdio.h>
//int main()
//{
//    int arr[10] = { 0 };
//    int i = 0;
//    int sz = sizeof(arr) / sizeof(arr[0]);
//    //输⼊
//    int* p = arr;
//    for (i = 0; i < sz; i++)
//    {
//        scanf("%d", p + i);
//    }
//    //输出
//    for (i = 0; i < sz; i++)
//    {
//        printf("%d ", *(p + i));
//    }
//    return 0;
//}